#include <REGX52.H>
#include "Delay.h"
#include "LCD1602.h"
#include "Timer0.h"

unsigned char Sec, Min, Hour;

void main() {
	LCD_Init();						// LCD1602初始化
	LCD_ShowString(1, 1, "Clock:");
	LCD_ShowChar(2, 3, ':');
	LCD_ShowChar(2, 6, ':');
	Timer0Init();					//定时器初始化
	while (1) {
		LCD_ShowNum(2, 1, Hour, 2);	// 显示时
		LCD_ShowNum(2, 4, Min, 2);  // 显示分
		LCD_ShowNum(2, 7, Sec, 2);  // 显示秒
	}
}

void Timer0_Routine() interrupt 1 {
	static unsigned int T0Count; // 静态变量，函数结束后不会销毁（与全局变量的区别：只有本函数可以使用）
	TL0 = 0x18;	  // 重新设置定时初值
	TH0 = 0xFC;	  // 重新设置定时初值
	// 1000ms后点亮第一个LED
	if(++T0Count >= 1000) {
		T0Count = 0;	// T0Count
		Sec++;
		if (Sec >= 60) {
			Sec = 0;
			Min++;
			if (Min >= 60) {
				Min = 0;
				Hour++;		
				if (Hour >= 24) {
					Hour = 0;
				}
			}
		}
	}
}